package com.lanchetech.entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 发票开票申请
 */
@ApiModel(value = "com-lanchetech-entity-InvoiceApply")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class InvoiceApply implements Serializable {
    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private Long id;

    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /**
     * 订单id
     */
    @ApiModelProperty(value = "订单id")
    private Long orderId;

    /**
     * 发票内容类型 0 商品明细 1 商品类别
     */
    @ApiModelProperty(value = "发票内容类型 0 商品明细 1 商品类别")
    private Byte contentType;

    /**
     * 发票开票账号id
     */
    @ApiModelProperty(value = "发票开票账号id")
    private Long invoiceAccountId;

    /**
     * 状态 0 待处理 1 已处理
     */
    @ApiModelProperty(value = "状态 0 待处理 1 已处理")
    private Byte status;

    /**
     * 处理时间
     */
    @ApiModelProperty(value = "处理时间")
    private Date dealTime;

    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createdAt;

    /**
     * 交易订单号(冗余)
     */
    @ApiModelProperty(value = "交易订单号(冗余)")
    private String tradeNo;

    /**
     * 发票文件链接
     */
    @ApiModelProperty(value = "发票文件链接")
    private String fileUrl;

    /**
     * 发票请求流水号
     */
    @ApiModelProperty(value = "发票请求流水号")
    private String serialNo;

    /**
     * 备注，发票开具信息查询及失败原因
     */
    @ApiModelProperty(value = "备注，发票开具信息查询及失败原因")
    private String remark;

    /**
     * 发票开具状态
     */
    @ApiModelProperty(value = "发票开具状态")
    private Byte resultStatus;

    /**
     * 类型 0 订单开票 1 提现开票
     */
    @ApiModelProperty(value = "类型 0 订单开票 1 提现开票")
    private Byte type;

    /**
     * 开票金额
     */
    @ApiModelProperty(value = "开票金额")
    private BigDecimal amount;

    /**
     * 税率
     */
    @ApiModelProperty(value = "税率")
    private BigDecimal taxRate;

    /**
     * 服务费率
     */
    @ApiModelProperty(value = "服务费率")
    private BigDecimal serviceRate;

    /**
     * 税额
     */
    @ApiModelProperty(value = "税额")
    private BigDecimal tax;

    /**
     * 服务费额
     */
    @ApiModelProperty(value = "服务费额")
    private BigDecimal service;

    /**
     * 租户id
     */
    @ApiModelProperty(value = "租户id")
    private Long tenantId;

    private static final long serialVersionUID = 1L;
}